package HomeWork;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class test1 {
    public static void main(String[] args) {
        List<String> one = new ArrayList<>();
        one.add("陈玄风");
        one.add("梅超风");
        one.add("陆乘风");
        one.add("曲灵风");
        one.add("武眠风");
        one.add("冯默风");
        one.add("罗玉风");
        List<String> two = new ArrayList<>();
        two.add("宋远桥");
        two.add("俞莲舟");
        two.add("俞岱岩");
        two.add("张松溪");
        two.add("张翠山");
        two.add("殷梨亭");
        two.add("莫声谷");

//        1. 第一个队伍只要名字为3个字的成员姓名；
//        2. 第一个队伍筛选之后只要前6个人；

        List<String> list1 = one.stream().filter(name -> name.length() == 3).limit(6).collect(Collectors.toList());
        Stream<String> one1 = list1.stream();
        System.out.println(list1);
//        3. 第二个队伍只要姓张的成员姓名；
//        4. 第二个队伍筛选之后不要前1个人；
        List<String> list2 = two.stream().filter(name -> name.startsWith("张")).skip(1).collect(Collectors.toList());
        Stream<String> two2 = list2.stream();
        System.out.println(list2);
//        5. 将两个队伍合并为一个队伍；
//        6. 根据姓名创建Student对象；
//        7. 打印整个队伍的Student对象信息。
        Stream.concat(one1, two2).forEach(name->{
             student son = new student(name);
             System.out.println(son);
         });

    }
}

class student {
    private String name;

    public student(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        student student = (student) o;

        return name != null ? name.equals(student.name) : student.name == null;
    }

    @Override
    public int hashCode() {
        return name != null ? name.hashCode() : 0;
    }

    @Override
    public String toString() {
        return "student{" +
                "name=" + name +
                '}';
    }
}
